As the value and use of information continues to increase, individuals and businesses seek additional ways to process and store information. One option available to users is information handling systems. An information handling system generally processes, compiles, stores, and/or communicates information or data for business, personal, or other purposes, thereby allowing users to take advantage of the value of the information. Because technology and information handling needs and requirements vary between different users or applications, information handling systems may also vary regarding what information is handled, how the information is handled, how much information is processed, stored, or communicated, and how quickly and efficiently the information may be processed, stored, or communicated. The variations in information handling systems allow for information handling systems to be general or configured for a specific user or specific use such as financial transaction processing, airline reservations, enterprise data storage, or global communications. In addition, an information handling system may include a variety of hardware and software components that may be configured to process, store, and communicate information and may include one or more computer systems, data storage systems, and networking systems.
The data storage systems of at least some information handling systems employ redundant array of independent drives (RAID) technology to enable the widespread use of low cost persistent mass storage devices without a corresponding decrease in reliability. RAID technology may employ a plurality of hard disk drives (HDDs), in combination with data redundancy, parity information and/or other form(s) of error checking information, or a combination thereof, to provide a “virtual disk.” User data and error checking information may be distributed among the plurality of HDDs of a virtual disk.
As a common example, a RAID 5 virtual disk spanning N HDDs, where N is an integer greater than two (2), stores a block of user data of B bytes in segments or stripes of size S, where S=B/(N−1), where the stripe includes parity data on one (1) of the physical drives and user data on each of the remaining N−1 drives. The physical drive on which the parity data is stored changes from one stripe to the next so that each physical drive stores approximately 1/N of the user data and 1/N of the parity data and where the ratio of user data to parity data is (N−1):1.
RAID-based storage systems may employ one or more redundant physical storage devices that are available to store data from a physical storage device that has exhibited one or more failures. Because these redundant physical storage devices are generally configured such that they can be swapped into a given virtual disk without powering down and without reloading an operating system, they may be referred to herein as hot spare drives or, more simply, hot spares (HSPs). A virtual disk that includes one or more HSPs may be referred to herein as a redundant virtual disk.
When a redundant virtual RAID disk transitions to a DEGRADED state, e.g., due to detection of an unrecoverable error on one of the physical drives, a rebuild process involving the hot spare drive may be initiated to restore the virtual RAID disk to a NORMAL state. Generally, the rebuild process requires the storage controller to retrieve data from each of the non-failing physical drives, compute the data that was stored on the physical drive that failed, and store the resulting data on the hot spare drive. Those of ordinary skill in the field of mass storage systems will readily appreciate that a rebuild process can be slow and can consume a significant portion of the storage controller's processing bandwidth.